# -*- coding: utf-8 -*- 
# @project : 《Atcoder》
# @Author : created by bensonrachel on 2021/11/20
# @File : 228.D - Linear Probing.py
# 《线性探测》
N = 1048576#2的20次方，不大。
a = [-1]*N
Q = int(input())
B = list(range(N))
#可以实现跳过一些连续的兄弟节点达到父节点，就不用每次加1，节省时间
#并查集，其实是一个图阿。
for i in range(Q):
    t,x = map(int,input().split())
    if t == 1:
        m = x % N
        pos = m
        visited = [pos]
        while a[pos] != -1:
            pos = B[pos]#一层一层往上跳到第一个值为-1的节点，记录下跳过的位置，然后这些位置将在后面被统一更新自己的父节点，即父子关系变兄弟关系。（本来不是同一层，变成同一层了。）
            visited.append(pos)
        a[pos] = x#找到第一个-1的位置，也就是离自己最近的-1，更新它的值。
        n = B[(pos+1)%N]#那pos位置不是-1了，那就要更新B[pos]了，更新为即紧接着的下一个节点（Y）的B[Y]。因为找不到的话肯定是往后一个找，所以直接更新为B[Y]，和Y变成兄弟关系，而pos与Y原本的关系是没有关系，
                        # 因为pos的值原本一定是  B[pos]=pos，也就是说它是一棵树的根节点
        for v in visited:#走过的都跟pos一样要更新为Y的兄弟。
            B[v] = n
#不能直接地更新pos前面的连着不为-1的位置的B数组的值，这样乱掉。#
    else:
        print(a[x % N])